/**
 * 接口1: collectLoginData(key,data)
 * 收集用户的登录数据，并判断相关信息是否收集完整；
 * @param key : string    在 wx.shareData 中存储 data 的 key；key 值为 假值时，表示将 data 对象的所有属性都追加在 wx.shareData 中；
 * @param data : any     被添加的数据
 * @returns boolean    表示登录相关的数据是否已经收集完整
 *
 *
 * 接口2: collectLoginData(data)
 * 收集用户的登录数据，并判断相关信息是否收集完整；
 * @param data : Object     被添加的数据; data 对象的所有属性都追加在 wx.shareData 中
 * @returns boolean    表示登录相关的数据是否已经收集完整
 */
wx.collectLoginData = function collectLoginData(key, data) {
  let argLen = arguments.length;
  if (argLen > 1) {
        wx.shareData[key] = data;
  } else if (argLen == 1) {
        Object.assign(wx.shareData, key);
    }


    let {code, encryptedData, iv, settingCode} = wx.shareData;

    return code && encryptedData && iv && settingCode;
};





let webviewIDURLMap = {
    LaunchWebview: "launchPageURL",
    OutPage: "outPageURL"
};

let pagePathMap = {
    LaunchWebview: "/pages/launchWebview/launchWebview",
    OutPage: "/pages/outPage/outPage"
};


/**
 * letWebviewNavToInterLocat(locat)
 * 让 launchPage 导航到位置 locat 处；
 * @param locat : Locat   启动面 launchPage  要跳转的位置
 */


/**
 * 让指定的 webview 跳转到指定的位置
 * @param locat
 * @param webviewID
 */
wx.letWebviewNavToInterLocat = function (locat, webviewID) {
    if (!webviewID) {
        webviewID = "LaunchWebview"
    }

    let {webBaseURL, loginInfo} = wx.shareData;

    let urlUtils = {
        href: webBaseURL,
        addSearchParams: {
            webviewID: webviewID,
            loginInfo: loginInfo,
        }
    };

    if (locat) {
        let hashParams = {launchLoca: locat};
        urlUtils.addHashParams = hashParams;
    }

    let urlPropName = webviewIDURLMap[webviewID];
    wx[urlPropName] = urlUtils;
};


/**
 * 导航到指定的 小程序页面
 * @param pageUrlUtils
 *
 * webviewID
 * title
 */
wx.navToPage = function (pageUrlUtils) {
    if (typeof pageUrlUtils != "object") {
        pageUrlUtils = {
            webviewID: pageUrlUtils
        };
    }

    let {webviewID = "LaunchWebview", title, searchParams, ...urlUtils} = pageUrlUtils;

    let path = pagePathMap[webviewID];

    if (title) {
        if (!searchParams) {
            searchParams = {};
        }
        searchParams.title = title;
    }

    if (searchParams) {
        urlUtils.searchParams = searchParams;
    }

    urlUtils.url = path;


    let url = wx.stringifyUrl(urlUtils);
    wx.navigateTo({
        url: url,
    });

};


/**
 * 在指定的小程序页面中导航到内部 urlUtils
 * @param urlUtils : UrlUtils    webview 要加载的 url 的 UrlUtils 对象
 * @param pageUrlUtils ? : PageUrlUtils    默认:LaunchWebview；要跳转的小程序页面的url的 UrlUtils 对象
 *
 */
wx.navToInterLocatOfPage = function (urlUtils, pageUrlUtils) {
    this.letWebviewNavToInterLocat(urlUtils);
    this.navToPage(pageUrlUtils);
}




/**
 * navToOutPage(locat,title)
 * 在 OutPage 中跳转到指定的页面
 * @param urlUtils : UrlUtils   位置对象
 * @param title ? : string  页面标题
 */
wx.navToOutPage = function (urlUtils, title) {
    this.outPageURL = urlUtils;

    this.navToPage({
        webviewID: "OutPage",
        title: title
    });
}




//发送formId 并清空 formIdList
wx.sendFormId = function(){
    let formIdList = wx.shareData.formIdList;
    let loginInfo = wx.shareData.loginInfo;
    let uid = loginInfo && loginInfo.uid;
  if (formIdList.length > 0 && uid){
    wx.shareInst.Api.getfromid(uid,formIdList);
        wx.shareData.formIdList = null;
    }
}